12.3. Example: time range limited retrieval

This example shows the time-range limited retrieval from a calendar which results in 2 events, one a recurring event and one a simple non-recurring event.

>> Request <<

POST /user/fred/calendar/ HTTP/1.1
Host: calws.example.com
Depth: 1
Content-Type: application/xml; charset="utf-8"
Content-Length: xxxx

<?xml version="1.0" encoding="utf-8" ?>
<C:calendar-query xmlns:D="DAV:"
  xmlns:C="urn:ietf:params:xml:ns:caldav">
  <D:prop>
    <D:getetag/>
    <C:calendar-data content-type="application/xml+calendar" >
      <C:comp name="VCALENDAR">
        <C:prop name="VERSION"/>
        <C:comp name="VEVENT">
          <C:prop name="SUMMARY"/>
          <C:prop name="UID"/>
          <C:prop name="DTSTART"/>
          <C:prop name="DTEND"/>
          <C:prop name="DURATION"/>
          <C:prop name="RRULE"/>
          <C:prop name="RDATE"/>
          <C:prop name="EXRULE"/>
          <C:prop name="EXDATE"/>
          <C:prop name="RECURRENCE-ID"/>
        </C:comp>
      </C:comp>
    </C:calendar-data>
  </D:prop>
  <C:filter>
    <C:comp-filter name="VCALENDAR">
      <C:comp-filter name="VEVENT">
        <C:time-range start="20060104T000000Z"
                      end="20060105T000000Z"/>
      </C:comp-filter>
    </C:comp-filter>
  </C:filter>
</C:calendar-query>

>> Response <<

HTTP/1.1 207 Multi-Status
Date: Sat, 11 Nov 2006 09:32:12 GMT
Content-Type: application/xml; charset="utf-8"
Content-Length: xxxx

<?xml version="1.0" encoding="utf-8" ?>
<D:multistatus xmlns:D="DAV:"
               xmlns:C="urn:ietf:params:xml:ns:caldav">
  <D:response>
    <D:href>http://cal.example.com/bernard/work/abcd2.ics</D:href>
    <D:propstat>
      <D:prop>
        <D:getetag>"fffff-abcd2"</D:getetag>
        <C:calendar-data content-type="application/xml+calendar" >
          <xc:icalendar
            xmlns:xc="urn:ietf:params:xml:ns:icalendar-2.0">
    <xc:vcalendar>
      <xc:properties>
      <xc:calscale><text>GREGORIAN</text></xc:calscale>
      <xc:prodid>
        <xc:text>-//Example Inc.//Example Calendar//EN</xc:text>
      </xc:prodid>
        <xc:version><xc:text>2.0</xc:text></xc:version>
      </xc:properties>
      <xc:components>
        <xc:vevent>
          <xc:properties>
            <xc:dtstart>
              <xc:parameters>
                <xc:tzid>US/Eastern<xc:tzid>
              <xc:parameters>
              <xc:date-time>20060102T120000</xc:date-time>
            </xc:dtstart>
            <xc:duration><xc:duration>PT1H</xc:duration></xc:duration>
            <xc:summary>
              <xc:text>Event #2</xc:text>
            </xc:summary>
            <xc:uid>
              <xc:text>00959BC664CA650E933C892C@example.com</xc:text>
            </xc:uid>
            <xc:rrule>
              <xc:recur>
                <xc:freq>DAILY</xc:freq>
                <xc:count>5</xc:count>
              </xc:recur>
            </xc:rrule>
          </xc:properties>
        </xc:vevent>

        <xc:vevent>
          <xc:properties>
            <xc:dtstart>
              <xc:parameters>
                <xc:tzid>US/Eastern<xc:tzid>
              <xc:parameters>
              <xc:date-time>20060104T140000</xc:date-time>
            </xc:dtstart>
            <xc:duration><xc:duration>PT1H</xc:duration></xc:duration>
            <xc:summary>
              <xc:text>Event #2 bis</xc:text>
            </xc:summary>
            <xc:uid>
              <xc:text>00959BC664CA650E933C892C@example.com</xc:text>
            </xc:uid>
            <xc:recurrence-id>
              <xc:parameters>
                <xc:tzid>US/Eastern<xc:tzid>
              <xc:parameters>
              <xc:date-time>20060104T120000</xc:date-time>
            </xc:recurrence-id>
            <xc:rrule>
              <xc:recur>
                <xc:freq>DAILY</xc:freq>
                <xc:count>5</xc:count>
              </xc:recur>
            </xc:rrule>
          </xc:properties>
        </xc:vevent>

        <xc:vevent>
          <xc:properties>
            <xc:dtstart>
              <xc:parameters>
                <xc:tzid>US/Eastern<xc:tzid>
              <xc:parameters>
              <xc:date-time>20060106T140000</xc:date-time>
            </xc:dtstart>
            <xc:duration><xc:duration>PT1H</xc:duration></xc:duration>
            <xc:summary>
              <xc:text>Event #2 bis bis</xc:text>
            </xc:summary>
            <xc:uid>
              <xc:text>00959BC664CA650E933C892C@example.com</xc:text>
            </xc:uid>
            <xc:recurrence-id>
              <xc:parameters>
                <xc:tzid>US/Eastern<xc:tzid>
              <xc:parameters>
              <xc:date-time>20060106T120000</xc:date-time>
            </xc:recurrence-id>
            <xc:rrule>
              <xc:recur>
                <xc:freq>DAILY</xc:freq>
                <xc:count>5</xc:count>
              </xc:recur>
            </xc:rrule>
          </xc:properties>
        </xc:vevent>
      </xc:components>
    </xc:vcalendar>
  </xc:icalendar>
            </C:calendar-data>
          </D:prop>
          <D:status>HTTP/1.1 200 OK</D:status>
        </D:propstat>
      </D:response>
      <D:response>
        <D:href>http://cal.example.com/bernard/work/abcd3.ics</D:href>
        <D:propstat>
          <D:prop>
            <D:getetag>"fffff-abcd3"</D:getetag>
            <C:calendar-data content-type="application/xml+calendar" >
              <xcal:icalendar
                xmlns:xc="urn:ietf:params:xml:ns:icalendar-2.0">
    <xc:vcalendar>
      <xc:properties>
        <xc:calscale><text>GREGORIAN</text></xc:calscale>
        <xc:prodid>
          <xc:text>-//Example Inc.//Example Calendar//EN</xc:text>
        </xc:prodid>
        <xc:version><xc:text>2.0</xc:text></xc:version>
      </xc:properties>
      <xc:components>
        <xc:vevent>
          <xc:properties>
            <xc:dtstart>
              <xc:parameters>
                <xc:tzid>US/Eastern<xc:tzid>
              <xc:parameters>
              <xc:date-time>20060104T100000</xc:date-time>
            </xc:dtstart>
            <xc:duration><xc:duration>PT1H</xc:duration></xc:duration>
            <xc:summary>
              <xc:text>Event #3</xc:text>
            </xc:summary>
            <xc:uid>
              <xc:text>DC6C50A017428C5216A2F1CD@example.com</xc:text>
            </xc:uid>
            <xc:rrule>
              <xc:recur>
                <xc:freq>DAILY</xc:freq>
                <xc:count>5</xc:count>
              </xc:recur>
            </xc:rrule>
          </xc:properties>
        </xc:vevent>
      </xc:components>
    </xc:vcalendar>
  </xc:icalendar>
        </C:calendar-data>
      </D:prop>
      <D:status>HTTP/1.1 200 OK</D:status>
    </D:propstat>
  </D:response>
</D:multistatus>